home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / sw-44a.zip / SW-44.DOC < prev    next >
Text File  |  1992-12-21  |  52KB  |  1,165 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.                                         
  17.  
  18.                    ╔═══════════════════════════════════╗  
  19.                    ║                                   ║▒▒
  20.                    ║              SW.EXE               ║▒▒
  21.                    ║       Batch File Enhancement      ║▒▒
  22.                    ║            Version 4.4            ║▒▒
  23.                    ║                                   ║▒▒
  24.                    ╚═══════════════════════════════════╝▒▒
  25.                      ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.                               December 19, 1992
  57.  
  58.                                   SW.EXE 4.3
  59.                                  Warren Small
  60.                                    (c) 1992
  61.  
  62.                               TABLE OF CONTENTS
  63.  
  64. INTRODUCTION  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    1
  65.      SW.EXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    1
  66.      DI.EXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    1
  67.      Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    1
  68.      OPTIONS  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    2
  69.      NOTES ON DOS . . . . . . . . . . . . . . . . . . . . . . . . . . . .    2
  70.  
  71. WINDOW APPEARANCE . . . . . . . . . . . . . . . . . . . . . . . . . . . .    3
  72.      /F#  Foreground Color   /B#  Background Color  . . . . . . . . . . .    3
  73.      Color Values . . . . . . . . . . . . . . . . . . . . . . . . . . . .    3
  74.      /L#  Window Border (Lines) . . . . . . . . . . . . . . . . . . . . .    3
  75.      /S#  Shadows . . . . . . . . . . . . . . . . . . . . . . . . . . . .    3
  76.      /W   Wide Edge . . . . . . . . . . . . . . . . . . . . . . . . . . .    3
  77.      /2   Double Spacing   /0  No Margin  . . . . . . . . . . . . . . . .    3
  78.      /R#  Row   /C#  Column . . . . . . . . . . . . . . . . . . . . . . .    4
  79.      /H#  Here  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    4
  80.      /D   Draw Window . . . . . . . . . . . . . . . . . . . . . . . . . .    4
  81.      /Z   Zoom Window . . . . . . . . . . . . . . . . . . . . . . . . . .    4
  82.  
  83. TEXT APPEARANCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    5
  84.      /T#  Text Color   /G#  Global Text Color . . . . . . . . . . . . . .    5
  85.      /E#  Enhanced Text Color . . . . . . . . . . . . . . . . . . . . . .    5
  86.      /M#  Border Message  . . . . . . . . . . . . . . . . . . . . . . . .    5
  87.      /J#  Justify . . . . . . . . . . . . . . . . . . . . . . . . . . . .    5
  88.  
  89. SCREEN APPEARANCE . . . . . . . . . . . . . . . . . . . . . . . . . . . .    6
  90.      /K#  Klear Screen (with optional Fill Character) . . . . . . . . . .    6
  91.      /K#  Klear Screen, set Foreground Color  . . . . . . . . . . . . . .    6
  92.      /K#  Klear Screen (with optional Fill String)  . . . . . . . . . . .    6
  93.      /O#  Outside Edge (Screen Border)  . . . . . . . . . . . . . . . . .    6
  94.      /X#  Xtra Lines  . . . . . . . . . . . . . . . . . . . . . . . . . .    6
  95.      /@#  Set Cursor  . . . . . . . . . . . . . . . . . . . . . . . . . .    6
  96.      /@-  Hide Cursor . . . . . . . . . . . . . . . . . . . . . . . . . .    7
  97.  
  98. OTHER SWITCHES  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    8
  99.      /P#  Pause . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    8
  100.      /Q   Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    8
  101.      /I#  User Input  . . . . . . . . . . . . . . . . . . . . . . . . . .    9
  102.      /I#var  User Input, Custom Variable Name . . . . . . . . . . . . . .    9
  103.      /I#  User Input, Multiple strings  . . . . . . . . . . . . . . . . .   10
  104.      /I####  User Input, Long Strings . . . . . . . . . . . . . . . . . .   10
  105.      /N#  Input Line Number . . . . . . . . . . . . . . . . . . . . . . .   10
  106.      /U   Input Uppercase . . . . . . . . . . . . . . . . . . . . . . . .   10
  107.      /D   Draw Window . . . . . . . . . . . . . . . . . . . . . . . . . .   10
  108.      /ch  Fill Line . . . . . . . . . . . . . . . . . . . . . . . . . . .   10
  109.      /A#  Alert   /A#,#  Alert with Frequency, Duration . . . . . . . . .   11
  110.  
  111. DEFAULTS  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   12
  112.  
  113. SCREEN DEFINITIONS  . . . . . . . . . . . . . . . . . . . . . . . . . . .   13
  114.  
  115. TIPS AND TRICKS . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   15
  116.  
  117.                                       i
  118.  
  119.                                   SW.EXE 4.3
  120.                                  Warren Small
  121.                                    (c) 1992
  122.  
  123. SHAREWARE INFORMATION . . . . . . . . . . . . . . . . . . . . . . . . . .   16
  124.  
  125. SW.EXE History  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   17
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.                                       ii
  179.  
  180.                                   SW.EXE 4.3
  181.                                  Warren Small
  182.                                    (c) 1992
  183.  
  184.                                  INTRODUCTION
  185.  
  186.      The batch  file language for the IBM PC could be  described as useful but
  187. not much  else. It is lacking  a great deal in  terms of  flexibility. These 2
  188. utilities, SW.EXE  and DI.EXE, attempt to make batch files  much more powerful
  189. and at the same time make them nice to look at.
  190.  
  191.      SW.EXE  grew out of  my hatred for  the ECHO  statement. Any  time that I
  192. needed  to say something  to the user, ECHO was the  only way. It was slow and
  193. difficult  to make  look halfway  decent. And  if I  wanted color,  there  was
  194. ANSI.SYS...
  195.  
  196.      DI.EXE was introduced  with SW 4.1 as a  response to users  who have been
  197. utilizing SW as an install  tool for software distribution. DI allows interro-
  198. gation of the disk drives to determine if they are ready for  whatever use you
  199. had in mind. This way you  can avoid hardware  errors which can pop up in  the
  200. middle of your nice SW screens. See DI-13.DOC for the details on using DI.
  201.  
  202.      SW.EXE will display up to  50 lines of text in a window using either  its
  203. command  line format  or an  external  'Screen  Definition' file.  With either
  204. method, the color of each line can be  defined separately or as a group. Also,
  205. the colors for  the window, its border, the  screen background and its  border
  206. can  be specified. Five  different window borders are  possible and the screen
  207. background can be filled with characters or complete strings.
  208.  
  209.      SW.EXE  also provides  functions  for  retrieving  input from  the  user,
  210. either single keystrokes or strings, controlling batch  file execution through
  211. branching and alerting the user with various sounds or even simple tunes.
  212.  
  213. Command Line Syntax:
  214.  
  215.        SW [options] "text1" [options] ["text2"] [options] ["text3"] ...
  216.  
  217. External File Syntax:
  218.  
  219.                              SW @filename [label]
  220.  
  221.      The  biggest advantage to using  the external file approach  is that more
  222. than  one window  can be displayed  with only  one call to  SW! This can  be a
  223. tremendous speed advantage if the batch file is being run from a floppy  disk.
  224. The screen definition can  also be written into  the batch file  that utilizes
  225. it so that  disk space is used  optimally. The optional  label shown  above is
  226. used to mark different definitions within the same file. The demo batch  file,
  227. SW44DEMO.BAT, contains  many examples of  both methods. See  page 13 for  more
  228. information.
  229.  
  230.      On the  next page is a  list of the various  switches along with a  short
  231. description  of what  each does. This  list appears on  the screen when  SW is
  232. called without parameters.
  233.  
  234.  
  235.  
  236.                                     Page 1
  237.  
  238.                                   SW.EXE 4.3
  239.                                  Warren Small
  240.                                    (c) 1992
  241.  
  242.                                    OPTIONS
  243.  
  244.  Window:  /f# Foreground (0-15)  /b# Background (0-7)  /l# Border (0-5)
  245.           /s# Shadow (1-4)  /w Wide Edge  /2 Double Spacing  /0 No Margin
  246.           /r# Row (1-25)  /c# Col (1-80)  /h# here + #  /d Draw  /z Zoom
  247.  Text:    /t#|g# Text (0-15)  /e# Enhanced Text  /m# Border Msg  /j# Justify
  248.  Screen:  /k#[ ] Clear screen (0-7) [char]  /o# Outside edge  /@# Set Cursor
  249.  Other:   /p#[-] Pause  /a#[,#] Alert (0-9) /q... Query  /char Fill Line
  250.           /i# User Input  /n# Input Line  /u Uppercase  /x# Xtra Lines
  251.  
  252.      Switches can be  in almost any order, upper or lower case  (except /q and
  253. /i, see page 8), and a space is required between each.
  254.  
  255.                                  NOTES ON DOS
  256.  
  257.      - There is a limit to  the length of  a command line whether it is  typed
  258. directly from the DOS prompt or  inside a batch file. This  limit is 128 char-
  259. acters. Anything past that point will be ignored.
  260.  
  261.      - The Query feature  described on page 8 makes use of Errorlevel codes to
  262. allow the batch file to determine which key  has been pressed. A series  of IF
  263. ERRORLEVEL  x statements  are used to test  for the value. You  must test from
  264. largest to  smallest since the statement will be true if the value is equal to
  265. OR greater than x.
  266.  
  267.      - The User  Input feature (page 9) and four  DI switches make use of  the
  268. DOS Environment. (DOS 3.3  or higher is  required for these features) This  is
  269. an area in memory  containing information stored by your boot up procedure  as
  270. well as some  programs. You can see  this information by  typing SET  from the
  271. command  line. There are  three variables  commonly found  in the environment.
  272. PATH is  a list of directories  DOS will search  to find a program  not in the
  273. current  directory.  You  must set  this  yourself,  usually  as  part  of the
  274. AUTOEXEC.BAT  file. COMSPEC  tells DOS  where to  find COMMAND.COM.  If it  is
  275. anywhere but the root  directory of the  boot drive, you will have to  set it.
  276. PROMPT  describes what the DOS prompt will look like. Your DOS manual has more
  277. information.
  278.  
  279.      - To check  the answers returned by User Input, the IF statement is used.
  280. In your batch  file, the variable  name must  be preceded  and followed the  %
  281. sign. On page 9 is a quick example. If you wish to check the actual value  use
  282. this form:
  283.                     IF "%ANS%"=="" goto Label
  284.  
  285. This will  branch to Label if the  user entered nothing. Use IF NOT to reverse
  286. the logic of the comparison.  Adding NOT to the above example would branch  to
  287. Label if ANS had some value.
  288.  
  289.      - To  be sure  there is  room in  the environment  you can  set the  size
  290. manually when  booting. "SHELL=C:\COMMAND.COM  /E:512 /P"  in your  CONFIG.SYS
  291. file will set the size to 512 bytes. This value can be as large as 32768. 
  292.  
  293.  
  294.                                     Page 2
  295.  
  296.                                   SW.EXE 4.3
  297.                                  Warren Small
  298.                                    (c) 1992
  299.  
  300.                               WINDOW APPEARANCE
  301.  
  302. /F#  Foreground Color   /B#  Background Color
  303.      Foreground and background  colors for the window are  set by the /f#  and
  304.      /b#  switches. The  color can  be selected  using the  numbers  or names.
  305.      Valid background colors are  limited to 0-7. If your command line gets to
  306.      be longer than  128 characters, use the numbers  to gain some space.  DOS
  307.      will ignore anything past the 128th position on the command line.
  308.  
  309.                                  Color Values
  310.  
  311.                0 or bla = Black      8 or BLA = Grey          
  312.                1 or blu = Blue       9 or BLU = Bright Blue   
  313.                2 or gre = Green     10 or GRE = Bright Green  
  314.                3 or cya = Cyan      11 or CYA = Bright Cyan   
  315.                4 or red = Red       12 or RED = Bright Red    
  316.                5 or mag = Magenta   13 or MAG = Bright Magenta
  317.                6 or yel = Brown     14 or YEL = Yellow        
  318.                7 or whi = White     15 or WHI = Bright White  
  319.  
  320. /L#  Window Border (Lines)
  321.      Border type is defined by the /l# (line) switch.
  322.  
  323.                /l0 - none     /l1 - ┌─       /l2 - ╔═
  324.                /l3 - ╒═       /l4 - ╓─       /l5 - █▀
  325.  
  326.      If a  character is  used instead  of a  number, it  will be  used as  the
  327.      window border. (e.g. /l* or /l▓).
  328.  
  329. /S#  Shadows
  330.      A shadow can be  added with the  /s# option.  If the shadow covers  other
  331.      characters on the screen they will be darkened, rather than hidden.
  332.  
  333.                /s1 - right, below (default if /s is used alone)
  334.                /s2 - left, below
  335.                /s3 - right, above
  336.                /s4 - left, above. 
  337.  
  338. /W   Wide Edge
  339.      The /w switch will give your window a wide edge, making it 2 rows  taller
  340.      and  4 columns wider.  Using this  option will reduce  the maximum string
  341.      length  to 64 and  the maximum number of  lines from 20 to  18 if you are
  342.      using a  screen definition. The /w switch will have no effect on a window
  343.      with no border (/l0).
  344.  
  345. /2   Double Spacing   /0  No Margin
  346.      The /2 option will  add a blank line between  each text line  passed. The
  347.      /0 switch removes the  blank space between the  border and first and last
  348.      lines of text.  Combine /0 with the /l0  switch and the resulting  window
  349.      will be only as large as needed for the text passed.
  350.  
  351.  
  352.                                     Page 3
  353.  
  354.                                   SW.EXE 4.3
  355.                                  Warren Small
  356.                                    (c) 1992
  357.  
  358. /R#  Row   /C#  Column
  359.      The position  of the  window  can  be set  using the  /r# (row)  and  /c#
  360.      (column) switches. These are referenced  to the upper left  corner of the
  361.      window.  If the  window is  too big  to fit,  these coordinates  will  be
  362.      adjusted by the program. Thus if you have a line that places a window  in
  363.      the  lower right hand corner and  you want to add a shadow, just put a /s
  364.      on  the end  of  the line  and the  window  will be  positioned  properly
  365.      without changing the row and column switch values.
  366.  
  367.      If you wish to set the  size of the window yourself, a second /r# and /c#
  368.      will define the bottom  row and right column.  If the text  passed to  SW
  369.      will  not fit  in  the  window, these  settings  will be  adjusted by  SW
  370.      automatically,  adjusting the bottom  and right  sides first.  If you set
  371.      only top  and bottom  or left  and right,  SW will  calculate the  proper
  372.      values for you.
  373.  
  374.      A shorthand  version of absolute  sizing is available.  You can now  show
  375.      the start and end with one switch for the height,  /r#### and one for the
  376.      width, /c####. The first 2 digits are the start value. /r1020 is  equiva-
  377.      lent to /r10 /r20, saving 3 characters on the line. 
  378.  
  379. /H#  Here
  380.      For  simpler positioning,  /h# (here) will  set the row  according to the
  381.      present cursor  position adding  # to  it if  provided. The value  can be
  382.      plus  or minus.  Use the  /h# switch  when you're  trying to  mix  screen
  383.      output from another program with an SW window.  The window can be  easily
  384.      placed relative  to the  other text  and will  be centered left  to right
  385.      unless you use the /c# switch.
  386.  
  387. /D   Draw Window
  388.      When a Pause,  Query or User Input is  utilized, the window will  "popup"
  389.      on the screen  and disappear when  the pause  finishes or  the input  has
  390.      been processed. If you  want the window to be left on the screen, specify
  391.      the /d  switch. This will draw  the window instead.  See page  8 for more
  392.      information on Pause, Query and User Input.
  393.  
  394.      ┌──────────────────────────────────────────────────────────────────────┐
  395.      │ NOTE TO PREVIOUS USERS  -  Since Pause, Query and User Input windows │
  396.      │ now disappear when the function is completed, you may wish to change │
  397.      │ your batch files by adding the /D switch.                            │
  398.      └──────────────────────────────────────────────────────────────────────┘
  399.  
  400. /Z   Zoom Window
  401.      A special effect for  SW is Zoom Window. Sometimes called "exploding"  by
  402.      other  applications, this  switch will  cause the window  to be  drawn in
  403.      several steps, from  small to its final size.  The shadow and border  are
  404.      zoomed as well with the text added when the proper size is reached.
  405.  
  406.  
  407.  
  408.  
  409.  
  410.                                     Page 4
  411.  
  412.                                   SW.EXE 4.3
  413.                                  Warren Small
  414.                                    (c) 1992
  415.  
  416.                                TEXT APPEARANCE
  417.  
  418. /T#  Text Color   /G#  Global Text Color
  419.      Text color  can be controlled with the /t# and /g# switches. Both use the
  420.      same  color table shown above  and both are position  sensitive. /g# will
  421.      change the text color  for all text following the switch. /t# will effect
  422.      only the text string immediately after  the switch. Multiple /g# switches
  423.      could be used to color groups of lines. To make "text" blink,  add 128 to
  424.      the color # or  put a + after the color name. (e.g. red+ = 4 +  128 = 132
  425.      = blinking red). The window foreground color can also blink if desired.
  426.  
  427. /E#  Enhanced Text Color
  428.      This switch selects  the "enhanced"  text color. This  is the color  used
  429.      when you  want to highlight  characters within a  line.   The location of
  430.      this switch  is important  as it  effects only  those lines of  text that
  431.      follow it,  like the /G#  switch. In fact,  you could  use the  switch to
  432.      give each line a different highlight color. 
  433.  
  434.      Marking  characters to be  highlighted in  a line can  be accomplished in
  435.      one  of two  ways. The Query  example on page  8 shows  the use  of the ~
  436.      (tilde) character preceding the 'Y' and 'N' and  will cause these charac-
  437.      ters  to appear  bright red  (/eRED) while  the rest of  the text  is the
  438.      default bright white. If the e parameter is  omitted, SW.EXE will use the
  439.      color of the current  line with the opposite intensity. There is no limit
  440.      to the number of characters that can be highlighted on each line.
  441.  
  442.      If you want to highlight a group of characters on a line, an  alternative
  443.      to placing a ~ in front of each  character is to surround the  portion of
  444.      the line you want highlighted  with curly braces ({ and  }). If you  need
  445.      to use any these  characters on a  line without highlighting, use a  pair
  446.      of each. The string "{{Normal Text}}"  will appear as "{Normal  Text}" in
  447.      the window without being highlighted.
  448.  
  449. /M#  Border Message
  450.      A  /m# preceding a  text string marks the string  as a Border Message. If
  451.      it  is the first  string in the window, it will  appear at the top. If it
  452.      appears after the first line of regular text, the message will appear  at
  453.      the bottom. The # must  be l, r or c for  left, right and  center. Center
  454.      is the default  if /m is  used alone.  The message  color is defined  the
  455.      same way as all other text with /t#, /g#, and /e#.
  456.  
  457. /J#  Justify
  458.      Text can  be justified  (aligned) to  the left  or right as  well as  the
  459.      default  centering.  This  switch  works  on  all  strings  following its
  460.      position, just like  /g#. /jl will align text  left and /jr will line  up
  461.      the text to the right. /jc would restore the default.
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.                                     Page 5
  469.  
  470.                                   SW.EXE 4.3
  471.                                  Warren Small
  472.                                    (c) 1992
  473.  
  474.                               SCREEN APPEARANCE
  475.  
  476. /K#  Klear Screen (with optional Fill Character)
  477.      The /k#  switch will clear the screen  using the color # (0-7) and places
  478.      the cursor at  the upper left  corner. A  single character  can be  added
  479.      after the # to  give some texture  to the screen. (e.g.  /k4─  or /kred─)
  480.      This can make the shadow effect more interesting. 
  481.  
  482. /K#  Klear Screen, set Foreground Color
  483.      A second /k# switch on the  same line can be used to set the screen fore-
  484.      ground  color (0-15).  SW /kblu  /kWHI sets  the screen  color to  bright
  485.      white  on blue. This  will NOT  affect the current DOS  screen color. The
  486.      default screen foreground value is 7 or whi.
  487.  
  488. /K#  Klear Screen (with optional Fill String)
  489.      Instead of a simple fill character for the background, a string could  be
  490.      used in  the form /k#string. The string  can be up to 80 characters long.
  491.      Interesting patterns will result  depending on the  length. Lengths  like
  492.      2, 4, 5, 8, 10,  etc. divide into 80 evenly. Other values result in  each
  493.      line being offset from the last. Don't limit  yourself to just words. Use
  494.      some of  the special IBM characters  in different  combinations. The Demo
  495.      batch  file has  some examples.  If you  want spaces  within the  string,
  496.      either surround the string with quotes  or substitute the underscore  (_)
  497.      for each space. They will be replaced by spaces before being displayed.
  498.  
  499. /O#  Outside Edge (Screen Border)
  500.      The  /o# switch will  set the  screen border color. All  color values are
  501.      valid. Using the switch without a color will reset the border to  normal.
  502.      This switch  could be used  alone to set  or reset  the border.  SW /ored
  503.      will  set the  screen  border  to red.  Some programs  ignore  the border
  504.      color, others  reset it and still others  set one of  their own. You will
  505.      have to experiment on your own is you wish to  set a special border color
  506.      for a program.
  507.  
  508. /X#  Xtra Lines
  509.      SW  is EGA 43 and VGA  28/50 line aware, i.e. if the screen is already in
  510.      one  of those modes, SW will  be able to utilize the  entire screen. This
  511.      switch  allows SW  to setup  28, 43 and  50 line displays  by using /X28,
  512.      /X43 and /X50 respectively.  /X25 will return to the normal 25 line mode.
  513.      The maximum text lines displayed  in a box is increased to 23 for the  28
  514.      line  mode, 38 in the  43 line mode  and 45  in the 50 line  mode. 5 more
  515.      lines can be displayed if the window uses /L0 /0 for parameters.
  516.  
  517. /@#  Set Cursor
  518.      If you wish to move the  cursor to a particular place on the screen, this
  519.      switch will accomplish it. The number which follows /@ can  be a row or a
  520.      row and col. /@15 will  place the cursor on row 15  col 1 and  /@234 will
  521.      set it on row 2 col 34. The next text output to the screen will begin  at
  522.      this point. It is important to note that setting the column to  something
  523.      other than 1 will affect only the first line put on the  screen. The rest
  524.      will start at the left margin. This switch does NOT affect SW's output.
  525.  
  526.                                     Page 6
  527.  
  528.                                   SW.EXE 4.3
  529.                                  Warren Small
  530.                                    (c) 1992
  531.  
  532. /@-  Hide Cursor
  533.      SW  can  hide  the  cursor after  it  has finished  processing  with this
  534.      switch. You can make  the cursor reappear with any SW command which means
  535.      that you  need to  include this switch on  each command line if  you want
  536.      the cursor to remain  hidden. Only one instance  of the switch  is neces-
  537.      sary in a screen definition.
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.                                     Page 7
  585.  
  586.                                   SW.EXE 4.3
  587.                                  Warren Small
  588.                                    (c) 1992
  589.  
  590.                                 OTHER SWITCHES
  591.  
  592. /P#  Pause
  593.      The /p#  switch will pause for #  10ths of a second before proceeding. If
  594.      # =  0 or is missing the program  will wait for the  user to press a key.
  595.      If you  combine Query  and Pause,  the pause  will occur after  the query
  596.      unless the query  specifies a default (See below).  Adding a - after  the
  597.      number will allow the user to interrupt the  timer. e.g. /p50- will pause
  598.      for 5  seconds or less if the user presses a key. Maximum value for pause
  599.      is 300 or 30 seconds.
  600.  
  601. /Q   Query (Controlled Branching)
  602.      The Query  switch (/q...)  allows user  input of  single characters.  The
  603.      selected key  sets the  DOS Errorlevel allowing  conditional branches  in
  604.      your batch file. 
  605.  
  606. Example:       sw /eRED "Continue?" "~Yes  ~No" /qyn
  607.                if errorlevel 2 goto exit
  608.                if errorlevel 1 goto next
  609.  
  610.      This will wait for  the user to press  the 'y'  or 'n' key rejecting  all
  611.      other keystrokes with a  'beep'. If 'n' is pressed, Errorlevel 2 will  be
  612.      set and the batch file will  branch to the label ":exit".  'y' will cause
  613.      a branch to ":next".
  614.  
  615. /Q   Special Characters, ~ ` ^ *
  616.      If  the ~ (tilde)  character immediately  follows the /q, the  ESC key is
  617.      also available and will set Errorlevel 0 if pressed. Up to 70  characters
  618.      can be designated as  option keys. If you  wish to use the  space bar  or
  619.      the piping  (|) and  redirection  (< or  >) characters,  enclose all  the
  620.      characters in quotes. (e.g. /q"abc "). Query is not case-sensitive.
  621.  
  622.      The `  or ^ character can  be used to indicate  a default choice for  the
  623.      Query. This choice is available to avoid conflicts with NDOS/4DOS.
  624.  
  625. Example:       sw /eRED "Continue?" "~Yes  ~No" /q^yn
  626.  
  627.      This makes a  'Y' the  default. SW will return  Errorlevel 1 if ENTER  is
  628.      pressed.  Also, by  combining a  pause  with a  default choice,  SW  will
  629.      return the default if no key is pressed before the pause time elapses.
  630.  
  631.      An asterisk (*) used in  the Query string acts like  a wild card  choice.
  632.      SW  will  return an  Errorlevel  corresponding  to  its  position in  the
  633.      string.
  634.  
  635. Example:  sw /eRED "Press ~Y to Continue" "Any other key to abort" /qy*
  636.  
  637.      'Y'  returns Errorlevel  1  and  all other  keys return  2. ESC  and/or a
  638.      default response  could be  combined with  the wildcard  option as  well.
  639.      Pressing ENTER  would then  return the default  choice as  would a  Pause
  640.      timeout.
  641.  
  642.                                     Page 8
  643.  
  644.                                   SW.EXE 4.3
  645.                                  Warren Small
  646.                                    (c) 1992
  647.  
  648.      Users who  wish SW  to flush the  keyboard buffer prior  to checking  for
  649.      Queries can use an uppercase  /Q switch rather than a  /q. In both cases,
  650.      the result of the query is the same.
  651.  
  652. /I#  User Input (Requires DOS 3.3 or higher)
  653.      The /i#  switch will add  an edit line  to the window  which will  accept
  654.      User  Input. The #  defines the  length of the line.  This feature can be
  655.      used to  ask for  directory  names, file  names, drive  letters or  other
  656.      information  which can  then be used by  the batch file. SW  will put the
  657.      answer in  the batch file's environment  with the label  ANS. DOS 3.3  or
  658.      higher is needed  for this feature. You can then use the  ANS variable in
  659.      your batch  file. A  Pause used  with this  feature will occur  after the
  660.      input.
  661.  
  662. Example:            sw "Which Directory?" /i40
  663.                     if exist %ans%\nul cd %ans%
  664.  
  665.      This  does  has  some limitations  since  it is  difficult  to check  the
  666.      validity of the answer from a batch file.
  667.  
  668.      ┌─────────────────────────────────────────────────────────────────────┐
  669.      │ NOTE TO SW 3.8 USERS: If you have used the /i# switch in your batch │
  670.      │ files,  be sure to  remove the line  "CALL SW-ENV.BAT"  since  this │
  671.      │ version does not create the batch file in favor of direct manipula- │
  672.      │ tion of the environment.                                            │
  673.      └─────────────────────────────────────────────────────────────────────┘
  674.  
  675. /I#var  User Input, Custom Variable Name
  676.      Optionally, you can specify your own  environment variable name with  the
  677.      /i#  switch. The variable  is indicated  by a string, up  to 8 characters
  678.      long, placed  after the  number. e.g.  /i24Dir gives  you a  24 character
  679.      field  and  places the  answer  in  the  environment  variable DIR.  (All
  680.      environment variables are shifted to upper case.) This allows you to  get
  681.      more  than one string before processing. Just be sure your environment is
  682.      sized properly. Check the SHELL command in your DOS manual.
  683.  
  684.      The string input  editing keys include HOME,  END,  ,  ,  BackSpace, DEL,
  685.      INSert and  Overtype modes  and use  of the  ESCape key  for aborting.  A
  686.      large  cursor indicates the  Overtype mode  and a  small cursor signifies
  687.      Insert. 
  688.  
  689.      IMPORTANT  NOTE: SW 4.2a  altered the  action of ESC by  NOT changing the
  690.      original value  and  returning EL  1 to  the  batch  file. This  prevents
  691.      unnecessary  alteration of the  environment. If  an error  occurs when SW
  692.      tries to add the result to  the environment, an EL 2 will be returned. EL
  693.      0 is returned with normal input.
  694.  
  695.      When  using the  /I switch, SW will  check the environment to  see if the
  696.      variable  you are using is already  present. If it  is, the value will be
  697.      used as a default  value in the User  Input field. A  SET command  should
  698.      always precede  an SW  call with  the /I  switch. If  you do  NOT want  a
  699.  
  700.                                     Page 9
  701.  
  702.                                   SW.EXE 4.3
  703.                                  Warren Small
  704.                                    (c) 1992
  705.  
  706.      default, you have  to make sure the variable  is not present. 'SET  ANS='
  707.      preceding the input  call will  make sure  there is no  value in the  ANS
  708.      variable. 
  709.  
  710.      Like the /Q switch, /I will flush  the keyboard buffer if an uppercase /I
  711.      is used rather than /i. The results for both are equivalent.
  712.  
  713. /I#  User Input, Multiple strings
  714.      Assuming  that  you have  adequate  space  in  your  enviroment, you  can
  715.      retrieve more than one string from  a user with only one call to SW. This
  716.      is only practical  for screen definitions since  it requires a good  deal
  717.      of information to set it  up and probably would not fit in a 128  charac-
  718.      ter command line.  Each input  defined would need  its own variable  name
  719.      and prompt. The only caveat to this method  is that an ESC is not record-
  720.      ed except by the last /I to be processed.
  721.  
  722. /I####  User Input, Long Strings
  723.      If you need to  get string input  that is  longer than the maximum  field
  724.      length of 70  , use the form /I####. The  last 2 digits define the  field
  725.      size and the  rest of the  number represents  the maximum  length of  the
  726.      string. e.g  /I8020 defines a  20 character field  with a  maximum string
  727.      length of 80.  Additionally, if the default  value found in the  environ-
  728.      ment exceeds the string length, SW  will automatically adjust to  compen-
  729.      sate.  However, the  string cannot  be  made  any longer.  Maximum string
  730.      length is 127 characters minus  the length of the  variable name. Maximum
  731.      field length is 70 if it  is on a line by itself. The field size will  be
  732.      adjusted if its length plus  the length of text on the same line  exceeds
  733.      70 or 64 if using wide margins.
  734.  
  735. /N#  Input Line Number
  736.      By default, the User Input field  is placed on the last  line of the box.
  737.      By using the  /n# switch, the field  can be placed on  any line. If  # is
  738.      positive, the  field will  appear after  the string  on line  #. If #  is
  739.      negative, the field will appear by itself on line #.
  740.  
  741. /U   Input Uppercase
  742.      If you want only  uppercase characters in the answer, use the /u  switch.
  743.      This can  be useful when asking  for a  drive letter and want  to put the
  744.      results on the screen for verification.
  745.  
  746. /D   Draw Window
  747.      Pause, Query  and User  Input windows  "popup"  on the  screen, i.e  they
  748.      disappear after  the Pause, Query or Input finish. /D is used if you want
  749.      the window to stay on the screen. 
  750.  
  751. /ch  Fill Line
  752.      This parameter is  used to indicate  a character  which will  be used  to
  753.      fill  a text  line  position  in the  window. Any  character that  is not
  754.      already used by  another switch is valid. This  switch could be used  for
  755.      horizontal  separators in  the text  box using  a ─  (ASCII 196)  or  a ═
  756.      (ASCII 205). The  area filled is  just inside the border of  the box. The
  757.  
  758.                                    Page 10
  759.  
  760.                                   SW.EXE 4.3
  761.                                  Warren Small
  762.                                    (c) 1992
  763.  
  764.      switch should be  positioned as if it were  a string on the command  line
  765.      or within the Screen Definition. Its color can  be specified the same  as
  766.      a normal text  line. See the first  Screen Definition on  Page 13  for an
  767.      example of its use.
  768.  
  769. /A#  Alert   /A#,#  Alert with Frequency, Duration
  770.      The Alert switch  (/a#) can be used to  produce the normal  IBM beep if #
  771.      is 0 or missing. If that's too boring, nine  other sounds can be produced
  772.      varying from simple tones to more  complex sounds using the values below.
  773.  
  774.  
  775.                              Alert Switch Values
  776.                       1 - Low Freq Tone    5 - Bweep Two
  777.                       2 - Mid Freq Tone    6 - Bomb     
  778.                       3 - High Freq Tone   7 - Siren    
  779.                       4 - Bweep One        8 - Phasor   
  780.                                  9 - Tweeter
  781.  
  782.      The demo batch file gives you a chance to try them all.
  783.  
  784.      The /A switch can also produce any tone  that the PC speaker can put out.
  785.      Using the  form /A##,##, the first  number will be  the frequency of  the
  786.      tone  (20-20000)  and the  second  is its  duration  (1-300 tenths  of  a
  787.      second). Using a screen definition, songs  are actually possible using  a
  788.      series  of lines like "_window  /a440,1". This produces  a 440 hertz tone
  789.      for 1 tenth of  a second. SW44DEMO.BAT has  some short examples.  The use
  790.      of a  screen definition is  needed for  speed of  execution. Trying  this
  791.      from several command lines in  the batch file will result  in a less than
  792.      smooth output.
  793.  
  794.      For you  musicians out  there, there  is an  easier way  to create  those
  795.      little tunes. Notes can be specified with the  /A switch as well.  Middle
  796.      C is designated as  C4. A sharp is  shown as C4#  and a flat as  B3b. The
  797.      full form of the  switch is /AA4,10 which will play an A, 4th octave, for
  798.      1  second. The tunes in SW44DEMO.BAT use this form of /A. The valid range
  799.      is from E0 to  B9. It should be  noted that the IBM  speaker has  limita-
  800.      tions  in reproducing  high notes  and  the  practical limit  is probably
  801.      around a G9  or about 12,000  Hz. Your  results could  vary depending  on
  802.      your computer type.
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809.  
  810.  
  811.  
  812.  
  813.  
  814.  
  815.  
  816.                                    Page 11
  817.  
  818.                                   SW.EXE 4.3
  819.                                  Warren Small
  820.                                    (c) 1992
  821.  
  822.                                    DEFAULTS
  823.  
  824.      Yellow  double line border on  a centered blue  window with white single-
  825. spaced text.  No Clear Screen, Shadow or Zoom.  Enhanced color will default to
  826. the text color with the opposite intensity. (/fYEL /bblu /gWHI /l2 /ewhi)
  827.  
  828. Example:  sw /kwhi /fblu /bred /gYEL "Line 1" /tWHI "Line 2" "Line 3" /s2
  829.  
  830.      This  will display a blue (/fblu)  on red (/bred) window with a shadow to
  831. the left and below it (/s2).  The screen color will be  white (/kwhi). Lines 1
  832. and 3 are bright yellow  (/gYEL) and line 2 is  bright white (/tWHI).  See the
  833. batch file SW44DEMO.BAT for many more examples.
  834.  
  835.      If  no text  strings are  passed,  features such  as Clear  Screen (/k#),
  836. Query  (/q...), Pause (/p#),  Alert (/a#[,#]), and  Outside Edge  (/o#) can be
  837. used with no window output. (e.g. sw /p10 will pause for 1 second.)
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.  
  866.  
  867.  
  868.  
  869.  
  870.  
  871.  
  872.  
  873.  
  874.                                    Page 12
  875.  
  876.                                   SW.EXE 4.3
  877.                                  Warren Small
  878.                                    (c) 1992
  879.  
  880.                               SCREEN DEFINITIONS
  881.  
  882.      Screen  Definitions, introduced  with version  4.0, greatly  enhance  the
  883. flexibility and  power of SW. It  simplifies the command  line by putting  all
  884. the switches and  text into  a file  that SW  can read  into memory.  Multiple
  885. windows can be defined  in the file  and displayed with one call to  SW. Also,
  886. text  handling by one  window is  expanded to 20 single  spaced lines, more if
  887. EGA or VGA modes are used (See /X#, page 6).
  888.  
  889.      When you run SW44DEMO.BAT,  you can easily see the advantages of using  a
  890. screen definition.  All switches  just described  are applicable  in a  screen
  891. definition, including Query, Pause, and User  input. Windows will be displayed
  892. in the order that they are  read from the file. A  pause with the third window
  893. causes the pause to take place after the third window is displayed.
  894.  
  895.      In the batch file, the syntax for using a screen definition is:
  896.  
  897.                              SW @filename [label]
  898.  
  899. The definition can be  in a separate file or  even within the same batch file.
  900. The optional label is used when more than  one definition is in the  file. The
  901. default label is 'Display'. 'End_Display' marks the end of the definition.
  902.  
  903.      What follows is a  breakdown of a portion  of one of  the screen  defini-
  904. tions that can  be found in  SW44DEMO.BAT. There are a total  of 5 definitions
  905. used by the  demonstration, three of which are  within the batch  file and two
  906. are from external files. 
  907.  
  908. ┌─────────────────────┬─────────────────────────────────────────────────────┐
  909. │Default Label        │ :Display                                            │
  910. │first window         │ _window /kcya┼ /r2 /s /bred /w /0                   │
  911. │text 1               │ SW.EXE - Expanded Text Handling!                    │
  912. │text 2, new color    │ /tWHI+ Multiple Windows!                            │
  913. │text 3, footer       │ /m  v 4.4                                           │
  914. │2nd window           │ _window /r10 /s /bwhi /gblu /l1 /fred /0            │
  915. │text 1, new color    │ /tBLU Optional Command Line Syntax:                 │
  916. │text 2               │ SW @filename [label]                                │
  917. │3rd window           │ _window /r16 /s /bwhi /gblu /l1 /fred /0            │
  918. │text 1, new color    │ /tBLU SW 4.x ADDITIONAL FEATURES                    │
  919. │text 2, fill line    │ /tred /─                                            │
  920. │text 3, justify left │ /jl - Define the entire screen with multiple windows│
  921. │text 4               │    using external text files.                       │
  922. │4th window, pause    │ _window /r25 /l0 /0 /p100-                          │
  923. │text 1               │ - Press any key for more -                          │
  924. │5th window, pause    │ _window /r19 /bwhi /gblu /l0 /jl /0 /p100-          │
  925. │text 1               │ - Text handling can be expanded to 20 single-spaced │
  926. │text 2               │   lines per window.                                 │
  927. │.                    │ .                                                   │
  928. │.                    │ .                                                   │
  929. │Final label          │ :End_Display                                        │
  930. └─────────────────────┴─────────────────────────────────────────────────────┘
  931.  
  932.                                    Page 13
  933.  
  934.                                   SW.EXE 4.3
  935.                                  Warren Small
  936.                                    (c) 1992
  937.  
  938.      The  _window line  contains the  switches  that  describe the  window and
  939. screen  and have the same form as they would on a  command line, preceded by a
  940. slash and  separated by a space. The lines that follow  will be interpreted as
  941. text until another '_window' or the 'end_display' label is found. 
  942.  
  943.      The text switches can appear on the same line preceding the text. The  /t
  944. switch is used to change the  color one line of text and is separated from the
  945. text by a space. /g can be  used before a text line to change the color of the
  946. rest of the lines. /j can be used  to change the text alignment and /m is used
  947. to specify  a border message. Finally,  /e is used  to specify the  "enhanced"
  948. text color. Multiple switches can precede the text.  The text can be  enclosed
  949. by quotes if additional  spaces before or after  are desired. This example has
  950. 4 pauses and defines small windows that fit  inside larger ones to change  the
  951. text without redrawing the whole window.
  952.  
  953.      If a  different label is needed, simply substitute it  for 'Display'. The
  954. label can  be up to 15 characters. In SW44DEMO.BAT the other 2 definitions use
  955. the labels 'Snd_Menu' and '4.4'.
  956.  
  957.      Note  that when  using  the  /k switch  with a  fill string  in  a screen
  958. definition, do  not  use quotes  around the  fill  string.  This is  necessary
  959. because of the way  the switch is processed when using the screen  definition.
  960. As  before, if  you need  spaces within  the  string,  use the  underscore (_)
  961. character. It will be replaced with a space.
  962.  
  963.      A Query will  have to be the last item  in the definition for the  return
  964. code  to be valid. User Input can occur anywhere but you will have to wait for
  965. the entire definition to be displayed before checking the answer.
  966.  
  967.      Environment variables  will be  evaluated when  included inside  a screen
  968. definition. This enables you to create a screen to display the user's  answers
  969. or other  information without having  to resort to  the command  line mode. If
  970. the variable is not  found, the variable name will  be displayed in the window
  971. just as it appears in the screen definition.
  972.  
  973.      It  is possible  to "nest"  screen definitions.  One potential  use is to
  974. reuse a portion of one definition  and add a  new window to it. Here's what  a
  975. simple example would look like:
  976.  
  977.                                 :Display1    
  978.                                 :Display2    
  979.                                  _window ... 
  980.                                  text        
  981.                                 :End_Display1
  982.                                  _window ... 
  983.                                  text        
  984.                                 :End_Display2
  985.  
  986. The command  "SW @file  Display1" would  show only  the first  window and  "SW
  987. @file Display2"  would display both.  Any line beginning  with a  colon (:) is
  988. ignored by SW. This technique could save some disk space.
  989.  
  990.                                    Page 14
  991.  
  992.                                   SW.EXE 4.3
  993.                                  Warren Small
  994.                                    (c) 1992
  995.  
  996.                                TIPS AND TRICKS
  997.  
  998.      - Change the contents  of a window without redrawing the whole thing. Use
  999. the /l0 and /0 switches to  create a window  just big enough for the text  and
  1000. without a border. This way  you can overwrite part or all  of the inside  of a
  1001. window and change the text in a flash. The first demo screen definition  above
  1002. uses this technique.
  1003.  
  1004.      - Use the ECHO  batch file command  to create screen definitions "on  the
  1005. fly". If you use the redirect  character > and the redirect with append >> you
  1006. can build a screen  definition while running the batch file. In  SW44DEMO.BAT,
  1007. this method is used to create the help screen for DI.EXE. Here is a portion:
  1008.  
  1009.      echo :Display > di.hlp
  1010.      echo _window /kmag▒─┼─▒ /s /bred /r2 /0 /w >> di.hlp
  1011.      echo SW.EXE - Now with DI!>> di.hlp
  1012.      echo /mc  v 4.2 >> di.hlp
  1013.      echo _window /jl /s /0 /r9 >> di.hlp
  1014.      echo /mc  Disk Information >> di.hlp
  1015.      echo.>> di.hlp
  1016.      di >> di.hlp
  1017.      echo. >> di.hlp
  1018.      echo _window /r25 /bblu /l0 /0 /p300- >> di.hlp
  1019.      echo  - Press any key to continue - >> di.hlp
  1020.      echo :End_Display >> di.hlp
  1021.  
  1022. The  first line creates  the file  "di.hlp" and the following  lines append to
  1023. it. Then you call SW @di.hlp. Please note  that, if quotes are used around any
  1024. strings, the  >> should be placed directly after the end  quote so there won't
  1025. be a space  after it in the  file. If there is a  space, SW would display  the
  1026. end quote in the window which is  probably not desirable. You should also keep
  1027. in mind when capturing  text from another program,  that any text  longer than
  1028. 72 characters will be  truncated and should be less  than 20 lines long unless
  1029. you are using an  EGA or VGA mode (See /X#,  page 6). If more lines are  found
  1030. they  are ignored.  This way you can  show the result of  an operation without
  1031. destroying the look of the screen.
  1032.  
  1033.      - Use the  Enhanced text color  attribute (/e#)  to display  text in  two
  1034. colors on the same line. You could make whole words stand out in this manner.
  1035.  
  1036.                        SW /tRED /eRED+ "{Blinking} Red"
  1037.  
  1038.      -  If you want to display an  empty window, set the size  with /r#### and
  1039. /c####, then pass one space in a string. SW /r814 /c2060 " "
  1040.  
  1041.      - Use a  FOR loop to evaluate errorlevels  returned by a Query.  Although
  1042. it is slower  and requires the use of numbered  labels, it can shorten a  long
  1043. series of IF ERRORLEVELs  to one line. In the  demo batch file, the sound menu
  1044. uses this line to select the sound:
  1045.  
  1046.   for %%e in (1 2 3 4 5 6 7 8 9 10 11 12) do if errorlevel %%e goto beep%%e
  1047.  
  1048.                                    Page 15
  1049.  
  1050.                                   SW.EXE 4.3
  1051.                                  Warren Small
  1052.                                    (c) 1992
  1053.  
  1054.                             SHAREWARE INFORMATION
  1055.  
  1056.      These programs  are "shareware".  You are  allowed to  use the  programs,
  1057. free of  charge, for  a reasonable  amount of  time. If  you find  them to  be
  1058. useful, and continue to utilize them, a registration  fee of $15 is  required.
  1059. This will  entitle you to  personal notification of  future releases and  give
  1060. your suggestions for enhancements more value.  Many of the enhancements listed
  1061. in the history are the result of user comments and suggestions.
  1062.  
  1063.                             *** NEW PROGRAMS! *** 
  1064.  
  1065.      Anyone  registering SW 4.4  will receive a disk  with the latest version,
  1066. plus an  additional  program,  SWV.EXE. This  program is  a  simple text  file
  1067. viewer that integrates with SW. SW can generate  a window and then call SWV to
  1068. display the file within  that window. This  can be indispensable when a  batch
  1069. file needs  to display a large amount of information with  only a little work.
  1070. SWV includes features like Search, Place Marks, and  Zoom to full screen.  SWV
  1071. can be used as a stand-alone as well and is EGA 43 and VGA 28/50 line aware.
  1072.  
  1073.      You  will also  receive SW-DIR.EXE,  a  pop-up  file directory  for batch
  1074. files. It inherits many  of the appearance  switches of SW while allowing  the
  1075. user  to pick from the file  list and return the name through the environment.
  1076. DOS 3.3 or higher is required.
  1077.  
  1078.      Finally, you will  receive some more examples of what can be done with SW
  1079. with a little  work and imagination.  Thanks to  Bill Davis  for HIS work  and
  1080. imagination. There  is also  an eaxmple  of how  multiple strings  can be  re-
  1081. treived with a screen definition.
  1082.  
  1083.      Registered SW  3.x users  can upgrade to  SW 4.4 for  $5. This is  a free
  1084. upgrade for SW 4.x users. 4.x  users who wish to receive SWV and SW-DIR can do
  1085. so by sending  $2.50 for postage  and handling  to the  address below.  Please
  1086. specify  disk size. The  file SW-44.REG  is provided  to simplify registration
  1087. and ordering.
  1088.  
  1089.      Site licenses  can be  negotiated. Feel  free to  give it  to friends  or
  1090. upload  the original ZIP file to  other BBS's provided that no  fee is charged
  1091. for  distribution and  it  is not  modified in  any way.  Note to  BBS Sysops:
  1092. Please post this ZIP as is, with all  files included, and without changing the
  1093. ZIP filename.
  1094.  
  1095. SW.EXE Ver. 4.4 - December 19, 1992
  1096.  
  1097. Warren Small                              CIS  71076,407
  1098. 35 Benjamin Street                        GEnie  W.SMALL
  1099. Manchester, NH  03109                     Prodigy  RSJW31A
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.                                    Page 16
  1107.  
  1108.                                   SW.EXE 4.3
  1109.                                  Warren Small
  1110.                                    (c) 1992
  1111.  
  1112.                                 SW.EXE History
  1113.  
  1114.      3.6 - 12/31/89  First general release.
  1115.  
  1116.      3.7 - 02/01/90  Increased text lines  to 5. Colors can be  specified with
  1117. 3  letter codes.  Added  Here (/h#),  Double  Spacing (/2),  No  Margin  (/0),
  1118. Enhanced text color (/e#).
  1119.  
  1120.      3.8 - 04/22/91   Added 3 border styles,  3 shadow positions, Pause Inter-
  1121. rupt (/p#-), User Input (/i#).
  1122.  
  1123.      4.0  - 10/31/91   User  Input changed to  modify environment  rather than
  1124. create SW-ENV.BAT. Removed limit on Highlighting.  Added custom window  border
  1125. (/l#char), Border  Message (/m#), Justify (/j#),  Outside Edge  color (/o#), 9
  1126. Alert sounds (/a#),  Wide window edge (/w),  Foreground color for  screen (/k#
  1127. /k#), Query  wildcard, default,  and Pause  timeout (/q*^  /p#-), Window  size
  1128. control (/r# /r# /c# /c#). Screen Definitions introduced.
  1129.  
  1130.      4.1 - 12/1/91   Enhanced User Input. Pause,  Query and User Input  window
  1131. changed  to popup  style. Added  Fill  String  (/k#string), Zoom  Window (/z),
  1132. Input Line (/n#), Uppercase  Input (/u), Draw Window  to override popup  (/d),
  1133. custom  environment  variables (/i#var).  New  utility  added  to check  disks
  1134. (DI.EXE).
  1135.  
  1136.      4.2  - 2/2/92  Added  Fill Line (/char),  shorthand window sizing (/r####
  1137. /c####), Alert  Freq, Duration (/a#,#) or  Note, Duration  (/aN,#), key buffer
  1138. flush  option for  /Q  and  /I, default  value for  /I by  setting environment
  1139. variable, Window appearance  modified slightly for bordered (1-4) and  border-
  1140. less  windows. 5  text  line limit  removed  from  command  line form  of  SW.
  1141. Environment variables are now evaluated inside screen definitions. 
  1142.  
  1143.      4.2a - 2/29/92   Fixed bug in environment  variable evaluation in  screen
  1144. files  which caused rest  of file  to be read improperly.  Added another Query
  1145. default  indicator ^ for compatibility with NDOS. User Input enhanced to allow
  1146. large string input in small fields (/I####). 
  1147.  
  1148.      4.3  - 6/30/92  /x#  added for EGA  43 line  & VGA 50 line  modes. SW now
  1149. also detect  and  setup  43 and  50  line modes.  Text  lines longer  than  70
  1150. characters  are  truncated  without  displaying  an  error.  "Nested"   labels
  1151. possible in screen defs.
  1152.  
  1153.      4.3a - 9/16/92   Corrected /w  /l5 /─  bug. Added multi-input  capability
  1154. for screen defs.
  1155.  
  1156.      4.3b - 11/22/92  Fixed /l0  /0 /x43 bug. Added /@# to set cursor position
  1157. and /@- to hide it.
  1158.  
  1159.      4.4  - 12/16/92   Added /x28  mode for VGA  displays. Added use  of {} to
  1160. highlight groups of characters. Allowed /E#  to be used for each line of text.
  1161. Text handling increased  for /L0 /0  windows to  the maximum  the screen  will
  1162. allow (80 characters by 25, 28, 43 or 50 lines.)
  1163.  
  1164.                                    Page 17
  1165.